package com.qingzhou.web.service.impl.params.vo.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.qingzhou.common.web.domain.FileVo;
import com.qingzhou.web.service.impl.convert.DictConverter;
import com.qingzhou.web.service.impl.convert.DictParent;
import com.qingzhou.web.service.impl.convert.TestItemConverter;
import com.qingzhou.web.service.impl.convert.UserConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class PathologyExcelVo{
    @ExcelProperty(value = "状态" ,converter = DictConverter.class)
    private String status;
    @ExcelProperty(value = "医院Site" ,converter = DictConverter.class)
    @DictParent("hospital_site_dict")
    private String hospitalSite;
    @ExcelProperty("患者姓名")
    private String patientName;
    @ExcelProperty(value = "患者编号")
    private String patientCode;
    @ExcelProperty(value = "所属队列", converter = DictConverter.class)
    @DictParent("belong_queue_dict")
    private String belongQueue;
    @ExcelProperty(value = "检测项目", converter = TestItemConverter.class)
    private String testItem;

    @ExcelProperty(value = {"手术病理","病理编号"})
    private String pathologicalNumber;

    @ExcelProperty(value = {"手术病理","取样日期"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date samplingDate;

    @ExcelProperty(value = {"手术病理","病灶位置"})
    private String lesionLocation;

    /*@ExcelProperty(value = {"手术病理","病灶性质"})
    private String lesionNature;*/

    @ExcelProperty(value = {"手术病理", "是否多病灶"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String isMultifocal;

    @ExcelProperty(value = {"手术病理", "原发vs转移"}, converter = DictConverter.class)
    @DictParent("primary_vs_transfer")
    private String primaryVsTransfer;

    // 病理TNM分期（key）
    @ExcelProperty(value = {"手术病理","第8版病理TNM分期","T"})
    private String tblStaging;
    @ExcelProperty(value = {"手术病理","第8版病理TNM分期","N"})
    private String nblStaging;
    @ExcelProperty(value = {"手术病理","第8版病理TNM分期","M"})
    private String mblStaging;
    @ExcelProperty(value = {"手术病理","第8版病理TNM分期","TNM"},converter = DictConverter.class)
    @DictParent("tnm_stage_dict")
    private String tnm;
    @ExcelProperty(value = {"手术病理","第9版病理TNM分期","T"})
    private String tblNineStaging;
    @ExcelProperty(value = {"手术病理","第9版病理TNM分期","N"})
    private String nblNineStaging;
    @ExcelProperty(value = {"手术病理","第9版病理TNM分期","M"})
    private String mblNineStaging;
    @ExcelProperty(value = {"手术病理","第9版病理TNM分期","TNM"},converter = DictConverter.class)
    @DictParent("tnm_stage_dict")
    private String nineTnm;
    @ExcelProperty(value = {"手术病理","是否新辅助治疗"},converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String isNeoadjuvantTherapy;
    @ExcelProperty(value = {"手术病理","病理疗效"},converter = DictConverter.class)
    @DictParent("pathology_effect_dict")
    private String pathologyEffect;
    @ExcelProperty(value = {"手术病理","残留肿瘤比例（RVT%）"})
    private String tumorRatio;
    @ExcelProperty(value = {"手术病理","病理类型"})
    private String pathologicType;
    @ExcelProperty(value = {"手术病理","病理亚型"}, converter = DictConverter.class)
    @DictParent("pathologic_sub_type")
    private String pathologicSubtype;
    @ExcelProperty(value = {"手术病理","病理报告描述"})
    private String pathologicReportDescribe;
    @ExcelProperty(value = {"手术病理","气腔内播散STAS"})
    private String qqnbsSTAS;
    @ExcelProperty(value = {"手术病理","胸膜侵犯"})
    private String visceralPleura;
    @ExcelProperty(value = {"手术病理","是否有淋巴结转移"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String isMetastasisZY;
    @ExcelProperty(value = {"手术病理","具体转移淋巴"})
    private String haveZyMetastasis;
    @ExcelProperty(value = {"手术病理","是否R0切缘"}, converter = DictConverter.class)
    @DictParent("r_switch_dict")
    private String isRoSwitch;
    @ExcelProperty(value = {"手术病理","脉管内癌栓"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String vesselCancer;

    @ExcelProperty(value = {"手术病理","分子特征（驱动基因+PD-L1）","样本编号"})
    private String fzPathNum;
    @ExcelProperty(value = {"手术病理","分子特征（驱动基因+PD-L1）","PD-L1%"})
    private String fzPdl1;
    @ExcelProperty(value = {"手术病理","分子特征（驱动基因+PD-L1）","驱动突变基因"},converter = DictConverter.class)
    @DictParent("driver_mut_gene")
    private String driverMutGene;
    @ExcelProperty(value = {"手术病理","分子特征（驱动基因+PD-L1）","具体突变位点"})
    private String fzMutResultInfor;

    @ExcelProperty(value = {"非手术病理","是否做非手术病理"}, converter = DictConverter.class)
    @DictParent("sys_yes_no")
    private String ccIsPuncture;
    @ExcelProperty(value = {"非手术病理","取材位置"})
    private String punctureLocation;
    @ExcelProperty(value = {"非手术病理","取样时间"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date ccSamplingTime;
    @ExcelProperty(value = {"非手术病理","病理编号"})
    private String ccPathologyNum;
    @ExcelProperty(value = {"非手术病理","病理类型"})
    private String ccPathType;
    @ExcelProperty(value = {"非手术病理","PD-L1%"})
    private String ccPdl1;
    @ExcelProperty(value = {"非手术病理","报告描述"})
    private String ccReportDesc;

    @ExcelProperty(value = {"非手术病理","分子特征（驱动基因+PD-L1）","样本编号"})
    private String otherFzPathNum;
    @ExcelProperty(value = {"非手术病理","分子特征（驱动基因+PD-L1）","PD-L1%"})
    private String otherFzPdl1;
    @ExcelProperty(value = {"非手术病理","分子特征（驱动基因+PD-L1）","驱动突变基因"},converter = DictConverter.class)
    @DictParent("driver_mut_gene")
    private String otherDriverMutGene;
    @ExcelProperty(value = {"非手术病理","分子特征（驱动基因+PD-L1）","具体突变位点"})
    private String otherFzMutResultInfor;

    @ExcelProperty("数据检查原因")
    private String editReason;

    @ExcelProperty("终止原因")
    private String stopReason;

    @ExcelProperty("备注")
    private String remark;

    @ExcelProperty(value="创建人",converter = UserConverter.class)
    private String createBy;

    @ExcelProperty("创建时间")
    private Date createTime;
}
